package com.humngyang.com.hmy.study.concurrency.myannoations.immutable;

import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
import com.humngyang.com.hmy.study.concurrency.myannoations.ThreadSafe;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

@ThreadSafe
public class immutableExample1 {

//    private final static Map<Integer,Integer> map = Maps.newHashMap();
    private static Map<Integer,Integer> map = Maps.newHashMap();

    static {
        map.put(1,2);
        map.put(3,4);
        map.put(5,6);
        //将引用类型变量定义final之后，将不能再指向新的变量
        //map  = new HashMap();
        map = Collections.unmodifiableMap(map);
    }

    public static void main(String[] args) {
        map.put(1,4);
        System.out.println(map.get(1));
        //可知会产生错误，因为你使用Collections.unmodifiableMap(map)声明一个对象的时候，这个对象是不能被修改的。
    }


}
